﻿using System.Collections.ObjectModel;
namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(FeatureCollectionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DynamicFeatureCollectionType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    public abstract class AbstractFeatureCollectionType : AbstractFeatureType
    {
        private Collection<FeaturePropertyType> _featureMember = new Collection<FeaturePropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("featureMember")]
        public Collection<FeaturePropertyType> FeatureMember 
        {
            get
            {
                return this._featureMember;
            }
        }

        private Collection<AbstractFeatureType> _featureMembers = new Collection<AbstractFeatureType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiPointCoverage", Type = typeof(MultiPointCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiCurveCoverage", Type = typeof(MultiCurveCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiSurfaceCoverage", Type = typeof(MultiSurfaceCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("MultiSolidCoverage", Type = typeof(MultiSolidCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("GridCoverage", Type = typeof(GridCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("RectifiedGridCoverage", Type = typeof(RectifiedGridCoverageType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("FeatureCollection", Type = typeof(FeatureCollectionType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("DirectedObservationAtDistance", Type = typeof(DirectedObservationAtDistanceType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("DirectedObservation", Type = typeof(DirectedObservationType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Observation", Type = typeof(ObservationType), IsNullable = false)]
        [System.Xml.Serialization.XmlArrayAttribute("featureMembers", IsNullable = false)]
        public Collection<AbstractFeatureType> FeatureMembers 
        {
            get
            {
                return this._featureMembers;
            }
        }
    }
}
